In many types of jobs, employers typically schedule employees to work in shifts. However, scheduling shifts for a number of employees can be a challenging and time-consuming task for an employer. For example, some employees may not be available to work during certain time slots and/or may prefer to work particular shifts, rather than other shifts. Further, some employees may have limited skill sets or may otherwise only be able to be scheduled to work when certain other employees are scheduled to work. Additionally, if an employee does not show up for a scheduled shift, the employer may be left scrambling to find a replacement employee to take over the shift.